From: Giovanni Campagna Date: Sat, 4 Jan 2014 15:49:34 +0000 (+0100) Subject: ShellWindowTracker: fix reference counting of ShellApp X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~2952 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=6544326ffd84507cc53401316268efb80dbf78a2;p=gnome-shell.git ShellWindowTracker: fix reference counting of ShellApp All get_app_from_*() helpers are transfer full, but get_app_from_gapplication_id() was directly returning the result of lookup_app(), which is transfer none. https://bugzilla.gnome.org/show_bug.cgi?id=721439 --- diff --git a/src/shell-window-tracker.c b/src/shell-window-tracker.c index 4bccf6e94..a6311344f 100644 --- a/src/shell-window-tracker.c +++ b/src/shell-window-tracker.c @@ -256,6 +256,17 @@ get_app_from_window_wmclass (MetaWindow *window) return NULL; } +/** + * get_app_from_gapplication_id: + * @monitor: a #ShellWindowTracker + * @window: a #MetaWindow + * + * Looks only at the given window, and attempts to determine + * an application based on _GTK_APPLICATION_ID. If one can't be determined, + * return %NULL. + * + * Return value: (transfer full): A newly-referenced #ShellApp, or %NULL + */ static ShellApp * get_app_from_gapplication_id (MetaWindow *window) { @@ -268,10 +279,12 @@ get_app_from_gapplication_id (MetaWindow *window) id = meta_window_get_gtk_application_id (window); if (!id) - return FALSE; + return NULL; desktop_file = g_strconcat (id, ".desktop", NULL); app = shell_app_system_lookup_app (appsys, desktop_file); + if (app) + g_object_ref (app); g_free (desktop_file); return app;